#include "common.hpp"
#include "log.hpp"

using namespace std;

int main()
{
  Init init;
  Log log;
  log.Enable(Classfile);

  // 打开管道文件，服务端
  int fd = open(FIFO_FILE, O_RDONLY);
  // 如果打开失败
  if (fd < 0)
  {
    log(Fatal, "error string: %s, error code: %d", strerror(errno), errno);
    exit(FIFO_OPEN_ERR);
  }
  log(Info, "server open file done, error string: %s, error code: %d", strerror(errno), errno);
  log(Warning, "server open file done, error string: %s, error code: %d", strerror(errno), errno);
  log(Fatal, "server open file done, error string: %s, error code: %d", strerror(errno), errno);
  log(Debug, "server open file done, error string: %s, error code: %d", strerror(errno), errno);
  // 开始通信
  while (true)
  {
    char buffer[1024] = {0}; // 缓冲区
    int x = read(fd, buffer, sizeof(buffer));
    // 如果读取成功
    if (x > 0)
    {
      buffer[x] = 0; // 当成字符串处理
      cout << "client say# " << buffer << endl;
    }
    else if (x == 0)
    {
      log(Debug, "client quit, me too!, error string: %s, error code: %d", strerror(errno), errno);
      break;
    }
    else
    {
      break;
    }
  }
  close(fd); // 关闭管道文件
  return 0;
}